package com.sky.pay.api;

import com.sky.pay.common.OrderStatus;
import com.sky.pay.common.R;
import com.sky.pay.service.OrderService;
import com.sky.pay.vo.Order;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author yangsk
 */
@RestController
@RequestMapping("/orders")
public class OrderApi {
    @Autowired
    private OrderService orderService;

    /**
     * 这个接口对于前端页面而言，是一个定时任务
     * 查询订单状态，当用户下单成功后，并未进行支付操作，
     * 当用户在进行支付操作前，要先判断订单状态
     * 如果是未支付，才能进行操作，如果是已操作了，就不能进行操作支付
     * 对于native支付而言，当用户打开二维码的时候，就要定时掉这个接口进行判断
     *
     * @param orderNo
     * @return
     */
    @ApiOperation("前端定时获取订单状态，二维码弹出的时候，需要调用这个接口，用来判断该订单是否已支付过")
    @GetMapping("order/status/{orderNo}")
    public R getOrderStatus(@PathVariable("orderNo")String orderNo){
        Order order = orderService.getOrderStatus(orderNo);
        if(OrderStatus.SUCCESS.equals(order.getOrderStatus())){
            return R.ok("支付成功");
        }
        return R.ok().put("code","101").put("message","支付中");
    }
}
